#include <stdio.h>
#include <string.h>
#include <errno.h>
//strtok    字符分割函数  ok！！
//strerror  错误报告函数
//memcpy    内存拷贝函数
//
// int main()
// {
//     int arr[10]={1,2,3,4,5,6,7,8,9,10};
//     int arr1[10]={0};
//     int *p=memcpy(arr1,arr,sizeof(arr));
//     //这里就不打印了 在监视里看一下arr1 的情况
//     return 0;
// }
//##########
//模拟实现memcpy 功能
// #include <assert.h>
// void* my_memcpy(void* dest,const void* str,size_t num)
// {
//     assert(dest && str);
    // 这里 void* 是泛型指针
    // *dest=*str; 原理是这样的
    // 考虑到参数类型都是void* 原因是因为传入实参的类型不固定
    // 所以为了保证无论什么类型都能拷贝成功 必须要强制类型转换为char*
//     void* ret=(void*)dest;//记录初始位置
//     while(num--)
//     {
//         *(char*)dest=*(char*)str;
//         dest=(char*)dest+1;
//         str=(char*)str+1;
//     }
//     return ret;
// }
// int main()
// {
//     int arr[10]={1,2,3,4,5,6,7,8,9,10};
//     int arr1[10]={0};
//     my_memcpy(arr1,arr,sizeof(arr));
//     return 0;
// }

//sterror函数实现
// int main()
// {
//     FILE* ret=fopen("test.c","r");
//     if(ret==NULL)
//     {
//         printf("%s\n",strerror(errno));
//     }
//     else
//     {

//     }
//     return 0;
// }
// int main()
// {
//     char str[50]="zhaojiahao@22032120.huagong";
//     char s[50]={0};
//     strcpy(s,str);
//     char sep[]="@.";
//     for(char*ret=strtok(s,sep);ret!=NULL;ret=strtok(NULL,sep))
//     {
//         printf("%s\n",ret);
//     }
//     return 0;
// }
